#define _CRT_SECURE_NO_WARNINGS 1

#include"list.h"

struct A
{
	int _a1;
	int _a2;

	A(int a1 = 0, int a2 = 0)
		:_a1(a1)
		, _a2(a2)
	{}
};


int main()
{
	zy::list<int> li;
	li.push_back(1);
	li.push_back(2);
	li.push_back(3);
	li.push_back(4);
	zy::PrintList(li);

	zy::list<int> lli(li);
	zy::PrintList(lli);

	zy::list<int> llli;
	llli = li;
	zy::PrintList(llli);


	/*zy::list<int> li;
	li.push_back(1);
	li.push_back(2);
	li.push_back(3);
	li.push_back(4);
	zy::PrintList(li);

	li.clear();
	zy::PrintList(li);*/


	/*zy::list<int> li;
	li.push_back(1);
	li.push_back(2);
	li.push_back(3);
	li.push_back(4);
	zy::PrintList(li);*/


	//zy::list<A> li;
	//A aa1(1, 1);
	//A aa2 = { 2,2 };
	//li.push_back(aa1);
	//li.push_back(aa2);
	//li.push_back(A(3, 3));
	//li.push_back({ 4,4 });

	//zy::list<A>::iterator it = li.begin();
	//while (it != li.end())
	//{
	//	//cout << *it << " ";
	//	//cout << (*it)._a1 << " " << (*it)._a2 << endl;
	//	cout << it->_a1 << " " << it->_a2 << endl;
	//	cout << it.operator->()->_a1 << " " << it.operator->()->_a2 << endl;
	//	it++;
	//}
	//cout << endl;




	//zy::list<int> li;
	////li.push_back(1);
	////li.push_back(2);
	////li.push_back(3);
	////li.push_back(4);
	////li.push_back(5);
	//cout << li.size() << endl;
	//cout << li.empty() << endl;

	///*li.insert(li.begin()++, 4);
	//li.erase(--li.end());*/

	//zy::list<int>::iterator it = li.begin();
	//while (it != li.end())
	//{
	//	cout << (*it) << " ";
	//	it++;
	//}
	//cout << endl;

	//return 0;
}

//#include<iostream>
//#include<list>
//#include<algorithm>
//using namespace std;

//int main()
//{
//	list<int> li;
//	li.push_back(1);
//	li.push_back(4);
//	li.push_back(4);
//	li.push_back(2);
//	li.push_back(3);
//	li.push_back(4);
//	li.push_back(5);
//	li.push_back(4);
//
//	for (auto e : li)
//	{
//		cout << e << " ";
//	}
//	cout << endl;
//
//	li.sort();
//	for (auto e : li)
//	{
//		cout << e << " ";
//	}
//	cout << endl;
//
//	li.sort(greater<int>());
//	for (auto e : li)
//	{
//		cout << e << " ";
//	}
//	cout << endl;
//
//	li.unique();
//	for (auto e : li)
//	{
//		cout << e << " ";
//	}
//	cout << endl;
//
//	li.remove(4);
//	for (auto e : li)
//	{
//		cout << e << " ";
//	}
//	cout << endl;
//
//	return 0;
//}


//int main()
//{
//	list<int> li;
//	li.push_back(1);
//	li.push_back(4);
//	li.push_back(4);
//	li.push_back(2);
//	
//	list<int> lli;
//	lli.push_back(3);
//	lli.push_back(4);
//	lli.push_back(5);
//	lli.push_back(4);
//
//	li.splice(li.begin(), lli, lli.begin());
//
//	for (auto e : li)
//	{
//		cout << e << " ";
//	}
//	cout << endl;
//	for (auto e : lli)
//	{
//		cout << e << " ";
//	}
//	cout << endl;
//
//	
//
//	return 0;
//}


